package com.eight.cloud.job.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.eight.cloud.job.entity.QuartzJobEntity;
import com.eight.cloud.job.model.dto.QuartzJobDto;
import com.eight.cloud.mybatisplus.service.IBaseService;

import java.util.List;

/**
 * @InterfaceName: IQuartzJobService
 * @Author: TXC
 * @Date: 2025-02-25 10:11
 **/
public interface IQuartzJobService extends IBaseService<QuartzJobEntity> {
    /**
     * 分页查询
     *
     * @param page 分页信息
     */
    void getPage(IPage<QuartzJobEntity> page);

    /**
     * 新增定时任务
     * @param quartzJob 任务信息
     * @return boolean
     */
    QuartzJobEntity createQuartzJob(QuartzJobDto quartzJob);

    /**
     * 更新定时任务
     * @param quartzJob 任务信息
     * @return boolean
     */
    boolean updateQuartzJob(QuartzJobDto quartzJob);

    /**
     * 删除定时任务
     * @param uuid 任务id
     * @return boolean
     */
    boolean deleteQuartzJob(String uuid);

    /**
     * 获取定时任务
     * @param invokeTarget 调用目标字符串
     * @return QuartzJobEntity
     */
    QuartzJobEntity getQuartzJobByInvokeTarget(String invokeTarget);

    /**
     * 删除定时任务忽略存在的任务
     * @param invokeTargets 调用目标字符串集合
     * @return List<String> 不存在的任务列表
     */
    List<String> deleteQuartzJobIgnore(List<String> invokeTargets);
}
